﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using _1.Presentacion.Principal;
using _1.Presentacion.Utilidades;
using _2.Logica.Eventos;
using _4.Modelado.Eventos;

namespace _1.Presentacion.Modulo_Eventos
{
    public partial class Gestionar_Tipo_Evento : Päntalla_Base
    {
        public Gestionar_Tipo_Evento()
        {
            InitializeComponent();
        }

        #region Eventos

        private void btnHom_Click(object sender, EventArgs e)
        {
            try
            {
                Validaciones.CerrarFormulario(this);
            }
            catch (Exception)
            {
            }
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            try
            {
                Validaciones.LimpiarControles(this);

            }
            catch (Exception)
            {
            }
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                int cantErrores = 0;

                Validaciones.Validar(this, errorProvider1, ref cantErrores);

                if (cantErrores == 0)
                {
                    GuardarInformacion();
                }
            }
            catch (Exception)
            {
            }
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Esta seguro que quiere eliminar este tipo de evento", "Informacion", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    Eliminar();
            }
            catch (Exception)
            {
            }
        }

        private void Gestionar_Tipo_Evento_Load(object sender, EventArgs e)
        {
            try
            {
                CargaGrid();
            }
            catch (Exception)
            {
            }
        }

        private void dgvArea_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int indicefila = dgvArea.SelectedCells[0].RowIndex;

            if (indicefila < 0) return;

            txtPKArea.Text = dgvArea.Rows[indicefila].Cells[0].Value.ToString();
            txtAreaDescripcion.Text = dgvArea.Rows[indicefila].Cells[1].Value.ToString();
            txtAreaDescripcion.Focus();
        } 
        #endregion

        #region Metodos

        private void Eliminar()
        {
            var logica = new Tipo_EventoL();
            logica.TipoEventoEliminar(new TipoEvento { PK_Tipo_Evento = Convert.ToInt32(txtPKArea.Text) });
            CargaGrid();
            Validaciones.LimpiarControles(this);
        }

        public void CargaGrid()
        {
            var logica = new Tipo_EventoL();

            List<TipoEvento> Lista = logica.TipoEventoConsultar(new TipoEvento());
            dgvArea.Rows.Clear();
            for (int i = 0; i < Lista.Count; i++)
            {
                dgvArea.Rows.Add();
                dgvArea.Rows[i].Cells[0].Value = Lista[i].PK_Tipo_Evento;
                dgvArea.Rows[i].Cells[1].Value = Lista[i].TipoEventoNombre;

            }
        }

        private void GuardarInformacion()
        {
            var logica = new Tipo_EventoL();
            logica.TipoEventoGuardar(new TipoEvento
            {
                PK_Tipo_Evento = !txtPKArea.Text.Trim().Equals(string.Empty) ?
                                  Convert.ToInt32(txtPKArea.Text)
                                  : 0
                ,
                TipoEventoNombre = txtAreaDescripcion.Text.Trim()
            });
            CargaGrid();
            Validaciones.LimpiarControles(this);
        } 

        #endregion

    }
}
